;; This is an operating system configuration template
;; for a "desktop" setup with Plasma.

(use-modules (gnu) (gnu system nss) (srfi srfi-1))
(use-service-modules desktop sddm xorg ssh)
(use-package-modules certs gnome ssh admin fonts)
(use-package-modules qt xorg tmux linux)

(operating-system
  (host-name "plasma")
  (timezone "Asia/Shanghai")
  (locale "en_US.utf8")

  ;; Assuming /dev/sdX is the target hard disk, and "my-root"
  ;; is the label of the target root file system.
  (bootloader (bootloader-configuration
               (bootloader grub-bootloader)
               (targets (list "/dev/sdX"))))

  (file-systems (cons (file-system
                        (device "my-root")
                        (mount-point "/")
                        (type "ext4"))
                      %base-file-systems))

  (users (cons (user-account
                (name "plasma")
                (password (crypt "plasma" "$6$abc"))
                (group "users")
                (supplementary-groups '("wheel" "netdev"
                                        "audio" "video")))
               %base-user-accounts))

  ;; This is where we specify system-wide packages.
  (packages (cons* nss-certs         ;for HTTPS access
                   neofetch
                   htop
                   tmux
                   xprop
                   strace
                   %base-packages))

  (services (cons*
             ;; for debug
             ;; (simple-service
             ;;  'add-qt-debug-env
             ;;  session-environment-service-type
             ;;  '(("QT_MESSAGE_PATTERN"
             ;;     . "[[%{time process} %{type}] %{appname}: %{category} %{function} - %{message}]")
             ;;    ("QT_DEBUG_PLUGINS" . "1")
             ;;    ("QML_IMPORT_TRACE" . "1")))
             (service openssh-service-type
                      (openssh-configuration
                       (openssh openssh-sans-x)
                       (port-number 2222)))
             (service plasma-desktop-service-type)
             (service sddm-service-type
                      (sddm-configuration
                       (theme "breeze")))

             ;; Remove GDM if it's among %DESKTOP-SERVICES; on other
             ;; architectures, %DESKTOP-SERVICES contains SDDM instead.
             (remove (lambda (service)
                       (memq (service-kind service)
                             (list gdm-service-type sddm-service-type)))
                     %desktop-services)))
  ;; Allow resolution of '.local' host names with mDNS.
  (name-service-switch %mdns-host-lookup-nss))

;; Local Variables:
;; mode: scheme
;; End:
